package cn.infrabase.core.util;

import cn.infrabase.core.text.StringPool;
import lombok.extern.slf4j.Slf4j;

import java.util.Locale;

/**
 * 区域语言工具类。
 *
 * @author Weimin Gao
 * @since 1.0.0
 **/
@Slf4j
public class LocaleUtils {

	/**
	 * 返回给定的语言代码返回对应的区域语言对象，如果不存在则返回null值。
	 *
	 * @param language 给定的语言代码，如简体中文为：zh-cn。
	 * @return 区域语言对象。
	 */
	public static Locale forLanguageTag(String language) {
		Locale locale = null;
		if (language != null) {
			String lang = language.replaceAll(StringPool.UNDERLINE, StringPool.DASHED);
			Locale[] values = Locale.getAvailableLocales();
			for (Locale value : values) {
				if (value.toLanguageTag().equalsIgnoreCase(lang)) {
					locale = value;
					break;
				}
			}
		}
		if (locale == null) {
			log.error("语言代码【{}】不存在", language);
		}
		return locale;
	}
}
